package managerOptymalizacji;

import java.util.ArrayList;
import java.util.List;
import obslugaTransportu.RaportObslugiTransportu;
import optymalizacjaSkladowania.PropozycjaPrzydzialow;
import skladowisko.Terminal;
import skladowisko.transport.PlanowaneDzialania;
import skladowisko.transport.Transport;

/**
 *
 * @author Krzysiek
 */
public class FunkcjaOcenyStandard implements IFunkcjaOcenyPrzydzialu
{

    private Terminal t;
    private PropozycjaPrzydzialow przydzialy;
    List<RaportObslugiTransportu> raporty;

    public double oceniajPrzydzial(Terminal t, PropozycjaPrzydzialow przydzialy)
    {
        raporty = new ArrayList<RaportObslugiTransportu>();
       
        this.t = t;
        this.przydzialy = przydzialy;

        PlanowaneDzialania plany = t.pokazPlany();
        plany.sortuj();

        for (Transport transport : plany.pobierzTransporty())
        {
            RaportObslugiTransportu raport = transport.obsluz(przydzialy);
            raporty.add(raport);
        }

        int wynik = obliczWynik();
        return wynik;
    }

    private int obliczWynik()
    {
        int wynik = 0;
        for(RaportObslugiTransportu r : raporty)
        {
            wynik += r.getIloscOperacji();
        }
        return wynik;
    }
}
